package com.macro.mall.mapper;

import com.macro.mall.dto.BannerPicDto;
import com.macro.mall.dto.DesiginAreaDto;
import com.macro.mall.dto.TenantInfoDto;
import com.macro.mall.model.BannerPicEntity;
import com.macro.mall.model.CaseEntity;
import com.macro.mall.model.TenantEntity;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *  商家管理Mapper
 *
 * @author zhang
 * @date 2021/06/20
 */
public interface PlatFormMapper {

    /**
     *  查询商家列表
     *
     * @param status status
     * @param skip skip
     * @param pageSize 页码
     * @return List
     */
    List<TenantEntity> findTenantList(@Param("status") Integer status,
                                      @Param("skip") Integer skip,
                                      @Param("pageSize") Integer pageSize);

    /**
     * 查询商家总数
     *
     * @return int
     */
    int findTenantCount(@Param("status") Integer status);

    /**
     * 添加商家
     *
     * @param tenantInfoDto
     */
    void addTenant(@Param("param") TenantInfoDto tenantInfoDto);

    /**
     * 审核商家
     *
     * @param status 状态
     */
    void examineTenant(@Param("status") Integer status, @Param("tenantId") Long tenantId);

    /**
     * 勾选精选商家
     *
     * @param isRecommend 状态
     */
    void recommendTenant(@Param("isRecommend") Integer isRecommend, @Param("tenantId") Long tenantId);

    /**
     * 删除商家
     */
    void deleteTenant(Long id);

    /**
     * 删除商家用户
     *
     * @param id
     */
    void deleteUser(Long id);

    /**
     * 添加banner
     *
     * @param bannerPicDto 入参
     */
    void addBannerPics(@Param("param") BannerPicDto bannerPicDto);

    /**
     * 查询广告详情
     *
     * @param id
     * @return
     */
    BannerPicEntity findBannerPicsInfo(Long id);

    /**
     *  查询总数
     *
     * @return int
     */
    int findBannerPicsNum();

    /**
     *  查询bannerList
     *
     * @param skip
     * @param pageSize
     * @return
     */
    List<BannerPicEntity> findBannerPicList(@Param("skip") Integer skip, @Param("pageSize") Integer pageSize);

    /**
     * 勾选精选案例
     *
     * @param isRecommend 状态
     */
    void recommendCase(@Param("isRecommend") Integer isRecommend, @Param("caseId") Long caseId);

    /**
     * 删除案例
     *
     * @param caseId
     */
    void deleteCase(Long caseId);

    /**
     * 修改banner
     *
     * @param bannerPicDto 入参
     */
    void updateBannerPics(@Param("param") BannerPicDto bannerPicDto);

    /**
     * 删除bannerId
     *
     * @param bannerId
     */
    void deleteBannerPics(Long bannerId);

    /**
     * 查询所有案例
     *
     * @return int
     */
    int findAllCaseNum();

    /**
     *  查询所有案例
     *
     * @return List
     */
    List<CaseEntity> findAllCaseList(@Param("skip") Integer skip, @Param("pageSize") Integer pageSize);

    /**
     * 查询小区列表
     *
     * @param skip
     * @param pageSize
     * @return
     */
    List<DesiginAreaDto>  findDesiginArea(@Param("skip") Integer skip, @Param("pageSize") Integer pageSize);

    List<Long> findDesiginAreaByTenId(Long tenantId);
    /**
     * 查询小区个数
     *
     * @return
     */
    int findDesiginAreaCount();

    /**
     * 新增小区列表
     *
     * @param desiginAreaDto
     * @return
     */
    void addDesiginArea(@Param("param") DesiginAreaDto desiginAreaDto);

    /**
     * 查询小区名称是否重复
     *
     * @param desiginAreaDto
     * @return
     */
    int findAreaNameCount(@Param("param")DesiginAreaDto desiginAreaDto);

    /**
     * 删除小区
     *
     * @param areaId
     * @return
     */
    void deleteDesiginArea(Long areaId);

    /**
     * 修改小区列表
     *
     * @param desiginAreaDto
     * @return
     */
    void updateDesiginArea(@Param("param")DesiginAreaDto desiginAreaDto);

    /**
     *
     * @return
     */
    List<DesiginAreaDto> findUserList();
}
